package com.example.rabc.dao;

import com.example.rabc.entity.Permission;
import java.util.List;
import java.util.Optional;

/**
 * 权限DAO接口
 */
public interface PermissionDao extends BaseDao<Permission, Long> {
    /**
     * 根据权限代码查找权限
     * @param permissionCode 权限代码
     * @return 权限对象的Optional包装
     */
    Optional<Permission> findByPermissionCode(String permissionCode);
    
    /**
     * 根据资源类型查找权限列表
     * @param resourceType 资源类型
     * @return 权限列表
     */
    List<Permission> findByResourceType(String resourceType);
    
    /**
     * 根据父ID查找权限列表
     * @param parentId 父ID
     * @return 权限列表
     */
    List<Permission> findByParentId(Long parentId);
    
    /**
     * 根据状态查找权限列表
     * @param status 状态
     * @return 权限列表
     */
    List<Permission> findByStatus(Integer status);
}